﻿

using System;

namespace BeeTest
{
	public class Behavior
	{
		#region Operations

		public static ReturnGivenState Returns
		{
			get 
			{
				return new ReturnGivenState();
			}
		}


		public static GivenState Given()
		{
			return new GivenState();
		}

		public static GivenState Given(Action func)
		{
			func();
			return new GivenState();
		}


		public static GivenState Given<TP0>(Action<TP0> func, TP0 arg0)
		{
			func(arg0);
			return new GivenState();
		}


		public static GivenState Given<TP0, TP1>(Action<TP0, TP1> func, TP0 arg0, TP1 arg1)
		{
			func(arg0, arg1);
			return new GivenState();
		}


		public static GivenState Given<TP0, TP1, TP2>(Action<TP0, TP1, TP2> func, TP0 arg0, TP1 arg1, TP2 arg2)
		{
			func(arg0, arg1, arg2);
			return new GivenState();
		}


		public static GivenState Given<TP0, TP1, TP2, TP3>(Action<TP0, TP1, TP2, TP3> func, TP0 arg0, TP1 arg1, TP2 arg2, TP3 arg3)
		{
			func(arg0, arg1, arg2, arg3);
			return new GivenState();
		}


		public static GivenState Given<TP0, TP1, TP2, TP3, TP4>(Action<TP0, TP1, TP2, TP3, TP4> func, TP0 arg0, TP1 arg1, TP2 arg2, TP3 arg3, TP4 arg4)
		{
			func(arg0, arg1, arg2, arg3, arg4);
			return new GivenState();
		}


	#endregion

	}
}

